package edu.alaska.gina.feeder.gina_puffinfeeder_android_viewer; import android.app.Activity; import android.media.MediaPlayer; import android.os.Bundle; import android.view.View; import android.widget.MediaController; import android.widget.VideoView; import java.util.Timer; import java.util.TimerTask; /** * Activity for playing videos in full screen. * Created by Bobby Signor on 6/6/2014. */ public class FullscreenVideoPlayerActivity extends Activity { private static final int UI_HIDE_OPTIONS = View.SYSTEM_UI_FLAG_LOW_PROFILE; private MediaController MC; private VideoView movie; @Override protected void onRestoreInstanceState(Bundle savedInstanceState) { super.onRestoreInstanceState(savedInstanceState); movie.seekTo(savedInstanceState.getInt("seek_pos")); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_fullscreen_video_player); movie = (VideoView) findViewById(R.id.fullscreen_content); movie.setOnSystemUiVisibilityChangeListener(new SysUiVisibilityListener()); movie.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { @Override public void onPrepared(MediaPlayer mp) { mp.setLooping(true); } }); if (getIntent().getExtras() != null) movie.setVideoPath(getIntent().getExtras().getString("url")); else movie.setVideoPath("http://feeder.gina.alaska.edu/feeds/radar-uaf-barrow-seaice-images/movies/3464_radar-uaf-barrow-seaice-images_2014-6-5_1-day-animation.webm"); MC = new MediaController(this); MC.setAnchorView(movie); movie.setMediaController(MC); movie.start(); } @Override protected void onStart() { super.onStart(); MC.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { v.setSystemUiVisibility(UI_HIDE_OPTIONS); } }); movie.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { v.setSystemUiVisibility(UI_HIDE_OPTIONS); } }); this.getWindow().getDecorView().setSystemUiVisibility(UI_HIDE_OPTIONS); } @Override protected void onSaveInstanceState(Bundle outState) { outState.putInt("seek_pos", movie.getCurrentPosition()); super.onSaveInstanceState(outState); } private class SysUiVisibilityListener implements View.OnSystemUiVisibilityChangeListener { private int delay = Integer.parseInt(getResources().getString(R.string.hide_system_ui_delay)); @Override public void onSystemUiVisibilityChange(int visibility) { Timer t = new Timer(); t.schedule(new TimerTask() { @Override public void run() { runOnUiThread(new Runnable() { @Override public void run() { movie.setSystemUiVisibility(UI_HIDE_OPTIONS); } }); } }, delay); } } }